Ну что, попробуем наш еле живой класс на предмет чтения и помещения изображения на экран. Давайт создадим пункт меню типа Read BMP. Вот где.

Объявляем указатель на описание нашего класса.
// TestDibView.h : interface of the CTestDibView class // ///////////////////////////////////////////////////////////////////////////// #if !defined(AFX_TESTDIBVIEW_H__DE26E62D_F772_11D3_B050_000001260696__INCLUDED_) #define AFX_TESTDIBVIEW_H__DE26E62D_F772_11D3_B050_000001260696__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "dib.h" ......Ссылку на класс в классе вида.
class CTestDibView : public CView
{
...........
// Operations
public:
CDib *cbmfile;
..........
}
Теперь конструктор и присвоение этой перменной значения NULL. CTestDibView::CTestDibView()
{
// TODO: add construction code here
cbmfile=NULL;
}
По нажатию на пункт меню void CTestDibView::OnStepsReadbmp()
{
if (cbmfile!=NULL) delete cbmfile;
cbmfile = new CDib("c:\\windows\\my.bmp");
RedrawWindow();
}
И функция рисования. ////////////////////////////////////////////////////
// CTestDibView drawing
void CTestDibView::OnDraw(CDC* pDC)
{
CTestDibDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (cbmfile!=NULL)
{
StretchDIBits(pDC->m_hDC,10,10,100,100,0,0,100,100,cbmfile->lpBMP ,cbmfile->lpInfo,DIB_RGB_COLORS,SRCCOPY);
}
// TODO: add draw code for native data here
}
Из-за того, что когда я писал шаг меня отвлекли я проспал распредерение
памяти в CDib.cpp, вот необходимые изменения. #include "windowsx.h"
.......
void CDib::LoadFile(CString filename)
{
.....
BYTE* ptrBmp = (BYTE*)GlobalAllocPtr(GMEM_MOVEABLE,sizebmp);
.....
}
Проверим ??? Только не забудьте указать имя своего BMP файла.

С нашим классом просто. Создаем его и выводим на экран в функции OnDraw с помощью StretchDIBits.
Ну наконец получилось. Если Вы заметили я очень быстро пробежался по многим вопросам, которым нужно уделить больше внимания. Я попробую немного попозже. Несмотря на то, что сегодня суббота меня честно говоря достали. Всё-таки работать тоже надо иногда. То одному чего-то надо, то другому чего-то надо. Вообщем караул. Так что за ошибки извеняйте. Я в свою очередь обещаю описать все мутные вопросы, которые встречались здесь в подробностях.